
function hasAuth( permission, permissions ){
    //判断是否有访问该路由的权限 , 结果是 true/false
    return permissions.includes(permission);
}
function hasPermission( route, permissions ){
    //需要权限才能访问
    if( route.meta && route.meta.permission ){
        //判断是否有访问该路由的权限 , 结果是 true/false
        return permissions.includes(route.meta.permission);
    //不需要权限就可以访问    
    }else{ 
        return true;
    }
}
export function filterRoutes( routes, permissions ){
    var accessRoutes = [];
    //过滤routes这个路由表
    accessRoutes = routes.filter((route)=>{
        //判断: 如果route表示的路由规则在用户的权限列表中,则用户有权限访问该路由,该路由就需要过滤出来.
        if( hasPermission( route, permissions ) ){
            //如果route 这个路由有子路由表, 则继续过滤子路由表
            if( route.children && route.children.length ){
                //继续过滤子路由表( 调用 filterRoutes 自身 过滤子路由表 )
                route.children = filterRoutes( route.children, permissions )
            }
            return true;
        }else{
            return false;
        }
    })

    //返回最终过滤出来的 用户有权限访问的路由.
    return accessRoutes;
}
